package net.liteheaven.xblib.plugin;

import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;

/**
 * 控制器接口
 *
 * 插件调用者需要实现的方法集合，调用者可以随意组合自己的实现与super的调用
 *
 * 注意：
 * 因为插件需要在onCreate后才加载，所以在onCreate前就被调用的方法不在此集合。
 * 它们不能通过这个接口重新组合super和自己的实现。
 *
 * Created by LiangYu on 16/8/29
 */
public interface IXActivityController {
    void onCreate(Bundle savedInstanceState);

    void onDestroy();

    void onResume();

    void onPause();

    void onStart();

    void onStop();

    void onRestart();

    boolean dispatchTouchEvent(MotionEvent ev);

    boolean onTouchEvent(MotionEvent event);

    void onBackPressed();

    void onActivityResult(int requestCode, int resultCode, Intent data);

    void onNewIntent(Intent intent);

    void onSaveInstanceState(Bundle outState);

    void onRestoreInstanceState(Bundle savedInstanceState);

    void onWindowFocusChanged(boolean hasFocus);

    void onConfigurationChanged(Configuration newConfig);

    boolean onKeyDown(int keyCode, KeyEvent event);

    boolean onKeyUp(int keyCode, KeyEvent event);
}
